Регистрация...

Eserv Forum / E3 / Eproxy 3 Support / 2 внешних интерфейса

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Здравствуйте!

На машите с eserv`ом 3 интерфейса:
1-внутр.локалка, 2-внеш.статический ip, 3-внеш.динамич.ip

?:
Сегодня всё идет через интерфейс_2.

Как бы заставить ходить почту через интерфейс_2, а хттп трафик через интерфейс_3 ?

Это не слишком сложно?
 
Комментарии к этой версии (18.05.2008 19:48) [~miguel] ef7394b5
АвторДатаТекстtags
miguel20.05.2008 21:49
уже разобрался...
imported
mixsv25.05.2008 16:14
А я вот что-то не могу разобраться.

Не пояснишь как разделить трафик прокси и почты по разным внешним интерфейсам(провайдерам)?
imported
miguel26.05.2008 14:39
mixsv пишет: А я вот что-то не могу разобраться.

Не пояснишь как разделить трафик прокси и почты по разным внешним интерфейсам(провайдерам)?


Не знаю верно ли на 100%, и может быть это не единственный вариант.
Я сделал так:

eproxy\conf\httpproxy\ добавил в файл OnRequest.rules.txt предпоследней строкой:
CLIENT_MAC =~ 00-02-44-0C-A9-67 | ViaInterface: 10.3.3.62

и всё работает.
imported
mixsv26.05.2008 15:07
MAC-адрес указан внутренней карты?
imported
miguel26.05.2008 15:15
mixsv пишет: MAC-адрес указан внутренней карты?

На второй интерфейс отправляю не всех пользователей, поэтому это макадрес того компа, для которого делается хттппрокси через второй интерфейс. 10.3.3.62 — ip этого (второго внешнего) интерфейса.
imported
mixsv26.05.2008 15:42
Понятно.

У меня ситуация чуть-чуть иная. Мне нужно всю почту отправить на один интерфейс(провайдера), а прокси чтобы работал с другим интерфейсом(провайдером).

Может кто подскажет, как сие реализовать, если эо в принципе возможно?
imported
miguel26.05.2008 16:23
mixsv пишет: Понятно.

У меня ситуация чуть-чуть иная. Мне нужно всю почту отправить на один интерфейс(провайдера), а прокси чтобы работал с другим интерфейсом(провайдером).


Почему иная? то же самое.
Почта продолжает ходить через интерфейс по умолчанию, а прокси через другого провайдера.
Просто у меня сделано только для некоторых пользователей.
imported
mixsv26.05.2008 16:40
Да, а ведь верно, просто не указывать условие.

Что-то вроде:

ViaInterface: x.x.x.x

Попробую.
imported
miguel26.05.2008 17:44
mixsv пишет: Да, а ведь верно, просто не указывать условие.
Попробую.

Ну как, получилось?
imported
mixsv27.05.2008 10:15
Пока не пробовал, пришлось уехать из офиса.

Сегодня к вечеру сообщу.
imported
mixsv27.05.2008 18:36
Ну, что, вроде работает. По крайней мере HTTP-трафик идет через нужный интерфейс.

Я так думаю, что и для SOCKS-трафика эта схема будет работать.

А вот для FTP и SMTP трафика не знаю.

Eserv-гуру, что скажите?
imported
pig27.05.2008 23:28
Для FTP-прокси всё почти так же. Надо создать правило ftp-proxy\OnTargetConnect.rules.txt, куда и поместить вызов ViaInterface:. Должно сработать.

А SMTP — это имеется в виду агент? Ему это слово с параметром можно прямо в командную строку включить.
imported
mixsv28.05.2008 11:02
Спасибо.

Для smtpsend4 включил прямо в параметры запуска и работает.

Для FTP не проверял — не используется пока.

Всем спасибо.
imported
mixsv28.05.2008 16:34
Не все так гладко. Поработав немного правильно, smtpsend переключился на интерфейс, которому подключен прокси.

Может неправильно прописал параметр?

Вот моя строка:

{SMTP[SmtpSend]} -ln 200 -r 2 -helo {Server[HostName]} -sm smtp.enet.ru -o {Dirs[Temp]}\smtpsend-{RANDOM-ID}.log -f {SMTP[Out]}\ {SMTP[Return]} ViaInterface: 192.168.60.100
imported
pig28.05.2008 17:39
Там строк-то не одна. Может, сработал запуск для очереди retry. Или это у вас smtpsend3?
imported
miguel28.05.2008 17:59
mixsv пишет: Не все так гладко. Поработав немного правильно, smtpsend переключился на интерфейс, которому подключен прокси.
Может неправильно прописал параметр?


имхо всё дело в маршрутизации — у меня раньше тоже такое было. точно не помню как вылечил — давно было. где-то на этом форуме было обсуждение. вообщем нужно выставить правильные маршруты и метрики. попробуй поискать на этом форуме "route". и посмотри что у тебя в (route print)
imported
mixsv28.05.2008 18:02
Нет, четверка, правда от сборки 3.32.

Строку retry я учел
imported
mixsv28.05.2008 18:30
Если всетаки маршрутизация влияет, то боюсь дело табак.

Можно, конечно, поколдовать с маршрутами, но они будут влиять на весь трафик. Как разделить по типу трафика (HTTP — в одну дверь, SMTP — в другую)?

Я надеялся, что как раз ViaInterface поможет в этом.
imported
ac28.05.2008 19:25
mixsv пишет: Может неправильно прописал параметр?

Вот моя строка:

{SMTP[SmtpSend]} -ln 200 -r 2 -helo {Server[HostName]} -sm smtp.enet.ru -o {Dirs[Temp]}\smtpsend-{RANDOM-ID}.log -f {SMTP[Out]}\ {SMTP[Return]} ViaInterface: 192.168.60.100


А в smtpsend4 нет команды ViaInterface.
"ViaInterface: 192.168.60.100" заменить на
"0x643CA8C0 CONNECT-INTERFACE !"
imported
mixsv28.05.2008 20:49
"0x643CA8C0 CONNECT-INTERFACE !" — простите чайника, но непонятно — где информация об интерфейсе, через который нужно работать?

Спасибо.
imported
ac28.05.2008 21:16
0x64=100, 0xC0=192 ... В общем, я просто записал IP-адрес вашего интерфейса в виде числа, чтоб покороче ком.строка была.
Можно было записать
S" 192.168.60.100" GetHostIP THROW CONNECT-INTERFACE !
imported
ac28.05.2008 21:35
http://www.eserv.ru/download/smtpsend444.rar
Добавил команду "ViaInterface:", т.е. теперь можно попробовать исходную ком.строку.
imported
mixsv28.05.2008 23:02
Хорошо, спасибо. Завтра попробую.
imported
miguel29.05.2008 17:54
Еще небольшой вопрос по ходу:

какую команду нужно добавить в log.str.txt, чтобы увидеть через какой интерфейс пошел прокси трафик?
Ну например, я добавил в log 4501 {CLIENT_MAC}, чтобы видеть макадрес клиента, а для того, чтобы увидеть через какой интерфейс? {}
Что-то типа {NetworkInterface} ?
imported
mixsv29.05.2008 19:00
ac пишет: http://www.eserv.ru/download/smtpsend444.rar
Добавил команду "ViaInterface:", т.е. теперь можно попробовать исходную ком.строку.


Рабочий день полет нормальный.

Посмотрим, что дальше будет.

Спасибо.
imported
pig29.05.2008 19:47
miguel пишет: какую команду нужно добавить в log.str.txt, чтобы увидеть через какой интерфейс пошел прокси трафик?

{TARGET-SOCK sockIP&;Port DROP NtoA}
imported
miguel29.05.2008 20:45
{FROM-HOST} — это мы получим ip компа, куда коннектимся. мне же нужно ip интерфейса (локального, на машине с есерв`ом), через который клиент коннектится к целевому хосту
imported
miguel29.05.2008 20:48
pig пишет:
{TARGET-SOCK sockIP&;Port DROP NtoA}

Вы так быстро редактируете своё сообщение — я даже не успеваю ответить.
TARGET-SOCK сейча проверю
imported
miguel29.05.2008 21:01
pig пишет:
{TARGET-SOCK sockIP&;Port DROP NtoA}


(Error: 10038)
imported
ac29.05.2008 22:58
TARGET-SOCK — это только для Socks'а.

Для HTTP-прокси нужно вместо него "TARGET-CONN fsock". Но вообще на момент записи лога он может быть уже и закрытым, и нулевым, если соединение было не в режиме Keep-Alive, что в итоге приведет или к той же 10038, или к exception'у (если ноль на входе в fsock). Т.е. в общем случае интерфейсы исходящих коннектов надо внутри Eproxy сохранять, внешними правилами наверное не выкрутиться. Надо подумать...
imported
miguel30.05.2008 00:03
ac пишет: TARGET-SOCK — это только для Socks'а.
...
Надо подумать...


(Error: 2003)
(Error: 1073741819)
imported
ac30.05.2008 03:02
Для HTTP-прокси. Т.е. в конце 433 форматной строки запись
{TARGET-CONN fsock sockIP&;Port DROP NtoA}
  • будет печатать IP интерфейса, либо ошибки, в зависимости от состояния сокета на момент записи лога.
Скомпилировать дополненный Eproxy с возможностью записи в лог интерфейса состоявшегося коннекта (независимо от текущего состояния коннекта) временно не могу — исходники ядра сейчас в разобранном состоянии. Бету выложу на днях — уже с этими изменениями.

А пока можно такое микрорасширение применить: где-нибудь в конце OnStartup.rules.txt запишите строку
: IFACE TARGET-CONN ?DUP IF fsock sockIP&;Port DROP NtoA ELSE S" -" THEN ;
и в 433й форматной строке вместо указанной в начале поста программы напишите {IFACE}, тогда хоть exception'ов не будет при закрытом сокете.
imported
miguel30.05.2008 04:33
exception'ов нет, error в лог не пишет. но и кроме " -" тоже ничего не появляется

наверное, лучше бету подожду

спасибо за попытку!
imported
ac30.05.2008 04:46
miguel пишет: но и кроме " -" тоже ничего не появляется

Последите подольше, появятся.

miguel пишет: наверное, лучше бету подожду

Правильно, ночь на дворе и выходные на носу, спешить некуда
imported
miguel30.05.2008 15:15
ac пишет:
Последите подольше, появятся.

И правда, успевает прописаться <1% запросов.

ac пишет:
Правильно, ночь на дворе и выходные на носу, спешить некуда

Это у вас ночь — у нас 5утра. А в выходные и правда спешить некуда — тяпница.
imported
miguel30.05.2008 15:43
Наблюдение:

ip интерфейса отметилось только для запросов при обновлении баз касперского (kaspersky-labs.com) — со всех компов в сети. Ни один другой запрос кроме " -" ничего не оставил.
imported
ac30.05.2008 16:31
Если очистите кэш, то будет больше. У меня, например, с нашего сайта тоже keep-alive идет (картинки на страницах), поэтому на момент записи лога сокет еще часто открыт.

Ну, не переживайте, в след.версии будут интерфейсы по всем сделанным коннектам.
imported
ac10.06.2008 04:01
http://www.eserv.ru/download/Eproxy_100608_1.rar — бета с поддержкой IFACE.

Строчку ": IFACE TARGET-CONN ?DUP IF fsock sockIP&;Port DROP NtoA ELSE S" -" THEN ;" из OnStartup удалите, т.к. IFACE теперь встроенная команда.

В логе, где должен записываться интерфейс, через который производится исходящий коннект, использовать {IFACE}, как вы и делали.

P.S. В этой версии много других бетовых функций, поэтому если встретите глюки, то шлите логи в support@eserv.ru. (В IFACE глюков не будет)
imported
miguel10.06.2008 15:31
сервис не стартует — failed.

ругается на строку в плагине каком-то... а за что отвечает mlogc?

S" PRAGMA synchronous = OFF;" DBLOG @ db3_exec_

2008-06-10 15:00:28;0.0.0.0;Error 30000 in the rule file "..\CommonPlugins\plugins\mlogc\activate.f", line: 36, char: 47 2008-06-10 15:00:28;0.0.0.0;Error 30000 in the rule file "conf\OnStartupPlugins.rules.txt", line: 5, char: 21 2008-06-10 15:00:28;0.0.0.0;Error 30000 in the rule file "conf\OnStartup.rules.txt", line: 6, char: 30
imported
ac10.06.2008 16:00
mlogc отвечает за ведение журналов. У вас старая версия, работа с БД-журналами (на что у вас ругается eproxy в логе) была вынесена в отдельный plugin еще в декабре.

Если нет времени сейчас переходить на 3.34, то хотя бы этот plugin замените.
imported
miguel10.06.2008 16:19
достаточно папку mlogc заменить из нового 3.34?
imported
ac10.06.2008 16:56
Должно быть достаточно.
imported
miguel11.06.2008 09:40
Видимо, недостаточно
(SubsD) ERR: 30000
imported
svp11.06.2008 11:03
Злободневная тема, готовлю подключение оптики ко второму внешнему интерфейсу.
imported
miguel11.06.2008 12:17
svp пишет: Злободневная тема, готовлю подключение оптики ко второму внешнему интерфейсу.

Да, многие озаботились, горячая тема.

2ас: неплохо было бы вообще включить это в релиз, и чтобы трафик тоже можно было не только по proxy, но и по остальным протоколам считать. у нас, например, один интерфейс — медленный — для почты. второй — быстрый — для прокси, а трафик надо считать отдельно.
imported
ac11.06.2008 19:09
miguel пишет: Видимо, недостаточно
(SubsD) ERR: 30000

А, это уже новые, не связанные с обсуждаемыми IFACE, функции барахлят. Перенесите из текущего Eserv'а в ваш еще и ext\sqlite3.dll
imported
miguel12.06.2008 18:24
ac пишет: .... Перенесите из текущего Eserv'а в ваш еще и ext\sqlite3.dll

Спасибо! Вот теперь отлично!

а есть надежда увидеть {IFACE} встроенной командой eserv? для полного счастья, так сказать
imported
ac13.06.2008 03:42
Этот IFACE — это ведь для исходящих коннектов, т.е. кроме прокси имеет смысл разве что для smtpsend4...

А интерфейс входящих коннектов всегда была возможность анализировать во всех серверах Eserv/3 и Eproxy. Это команды SERVER_IP и SERVER_NAME.
imported
miguel13.06.2008 14:38
ac пишет:
А интерфейс входящих коннектов всегда была возможность анализировать во всех серверах Eserv/3 и Eproxy. Это команды SERVER_IP и SERVER_NAME.

Точно! И вообще зная, что весь почтовый трафик всегда идет через один интерфейс можно его в статистике по умолчанию и записать. надо подумать...

Кстати 2 дня полет был нормальный, сейчас в логе.
EXCEPTION! CODE:C0000005 ADDRESS:57EF62 WORD:WildCMP-U ** Exception time: Fri, 13 Jun 2008 09:59:24 +0400 ** Thread number/id:7 2640 User: @ USER DATA: 1CA0654 THREAD ID: A50 HANDLER: 189EE10 STACK: 0189FFC0 80EE5600 7FFAF000 0000018C 00000000 01CAABB4 [00000000] RETURN STACK: 189EDCC : 553248 (LocalsExit) 189EDD0 : 10 <?not in the image> 189EDD4 : 3 <?not in the image> 189EDD8 : 1CAD299 <?not found> 189EDDC : 1CAABB4 <?not found> 189EDE0 : 0 <?not in the image> 189EDE4 : 5A1BC0 (IsInFileEx) 189EDE8 : 1CAAE7C <?not found> 189EDEC : 5A1827 (EnumerateFileRecordsEx1) 189EDF0 : 553248 (LocalsExit) 189EDF4 : 14 <?not in the image> 189EDF8 : 0 <?not in the image> 189EDFC : FFFFFFFF <?not found> 189EE00 : FFFFFFFF <?not found> 189EE04 : 5A1B87 (IsInFileEx) 189EE08 : 1CAAE7C <?not found> 189EE0C : 55512C CATCH 189EE10 : 189EE20 <?not found> 189EE14 : 189FFAC <?not found> 189EE18 : 5A18BF (EnumerateFileRecordsEx) 189EE1C : 55512C CATCH 189EE20 : 189EEA0 <?not found> 189EE24 : 189FFAC <?not found> 189EE28 : 56CD67 RECEIVE-WITH 189EE2C : 1CABE84 <?not found> 189EE30 : A <?not in the image> 189EE34 : 1CAABA4 <?not found> 189EE38 : 1CA98A5 <?not found> 189EE3C : 1CA98A5 <?not found> 189EE40 : 1CA97A4 <?not found> 189EE44 : 7 <?not in the image> 189EE48 : 51 <?not in the image> 189EE4C : 1CA9852 <?not found> 189EE50 : 21 <?not in the image> 189EE54 : 6D0 <?not in the image> 189EE58 : 0 <?not in the image> 189EE5C : 58AD75 INCLUDED-WITH 189EE60 : 3EC <?not in the image> 189EE64 : 1CA9704 <?not found> 189EE68 : 5A1AA3 EnumerateFileRecordsEx 189EE6C : 553248 (LocalsExit) 189EE70 : 14 <?not in the image> 189EE74 : FFFFFFFF <?not found> 189EE78 : FFFFFFFF <?not found> 189EE7C : 5A1B87 (IsInFileEx) 189EE80 : 23 <?not in the image> 189EE84 : 1CA9730 <?not found> 189EE88 : 5A1C09 IsInFileEx 189EE8C : 5A1C77 IsInFile 189EE90 : 567853 INTERPRET_ 189EE94 : 5678DA INTERPRET 189EE98 : 567F68 TranslateFlow 189EE9C : 55512C CATCH 189EEA0 : 189EEEC <?not found> 189EEA4 : 189FFBC <?not found> 189EEA8 : 56CD67 RECEIVE-WITH 189EEAC : 1CA97A4 <?not found> 189EEB0 : A <?not in the image> 189EEB4 : 1CA968C <?not found> 189EEB8 : 1CA85C2 <?not found> 189EEBC : 1CA85C2 <?not found> 189EEC0 : 1CA828C <?not found> 189EEC4 : 1B <?not in the image> 189EEC8 : 12 <?not in the image> 189EECC : 1CA85AE <?not found> 189EED0 : 12 <?not in the image> 189EED4 : 584 <?not in the image> 189EED8 : 0 <?not in the image> 189EEDC : 56CE86 INCLUDE-FILE_new 189EEE0 : 6D0 <?not in the image> 189EEE4 : 56807B (INCLUDED1) 189EEE8 : 55512C CATCH 189EEEC : 189EF08 <?not found> 189EEF0 : 189FFB4 <?not found> 189EEF4 : 56811B INCLUDED_STD 189EEF8 : 1CA8264 <?not found> 189EEFC : 56818E INCLUDED 189EF00 : 574713 INCLUDED 189EF04 : 55512C CATCH 189EF08 : 189EF4C <?not found> 189EF0C : 189FFB4 <?not found> 189EF10 : 59F66D IncludeWithError 189EF14 : 59F842 IncludeRules 189EF18 : 553248 (LocalsExit) 189EF1C : 8 <?not in the image> 189EF20 : 1CA8194 <?not found> 189EF24 : 1CA96F4 <?not found> 189EF28 : 59F8D5 EvalRules 189EF2C : 59FEA5 EvalRules 189EF30 : 7 <?not in the image> 189EF34 : 1CA81C0 <?not found> 189EF38 : 59FF11 EvalRules: 189EF3C : 567853 INTERPRET_ 189EF40 : 5678DA INTERPRET 189EF44 : 567F68 TranslateFlow 189EF48 : 55512C CATCH 189EF4C : 189EF98 <?not found> 189EF50 : 189FFBC <?not found> 189EF54 : 56CD67 RECEIVE-WITH 189EF58 : 1CA828C <?not found> 189EF5C : A <?not in the image> 189EF60 : 0 <?not in the image> 189EF64 : 0 <?not in the image> 189EF68 : 0 <?not in the image> 189EF6C : 0 <?not in the image> 189EF70 : 0 <?not in the image> 189EF74 : 0 <?not in the image> 189EF78 : 1CA1AA0 <?not found> 189EF7C : 0 <?not in the image> 189EF80 : 0 <?not in the image> 189EF84 : 0 <?not in the image> 189EF88 : 56CE86 INCLUDE-FILE_new 189EF8C : 584 <?not in the image> 189EF90 : 56807B (INCLUDED1) 189EF94 : 55512C CATCH 189EF98 : 189EFB4 <?not found> 189EF9C : 189FFB4 <?not found> 189EFA0 : 56811B INCLUDED_STD 189EFA4 : 0 <?not in the image> 189EFA8 : 56818E INCLUDED 189EFAC : 574713 INCLUDED 189EFB0 : 55512C CATCH 189EFB4 : 189EFE8 <?not found> 189EFB8 : 189FFB4 <?not found> 189EFBC : 59F66D IncludeWithError 189EFC0 : 59F842 IncludeRules 189EFC4 : 553248 (LocalsExit) 189EFC8 : 8 <?not in the image> 189EFCC : 0 <?not in the image> 189EFD0 : 1CA8194 <?not found> 189EFD4 : 59F8D5 EvalRules 189EFD8 : 59FEA5 EvalRules 189EFDC : 9 <?not in the image> 189EFE0 : 5A4317 Server 189EFE4 : 55512C CATCH 189EFE8 : 0 <?not in the image> 189EFEC : 189FFB4 <?not found> 189EFF0 : 5A4331 Server 189EFF4 : 553248 (LocalsExit) 189EFF8 : 4 <?not in the image> 189EFFC : 18C <?not in the image> END OF EXCEPTION REPORT 2008-06-13 09:59:24;192.168.0.42;Error 1073741819 in the rule file "..\CONF\lists\proxy\mapping\tcp.txt", line: 2, char: 31 2008-06-13 09:59:24;192.168.0.42;Error 1073741819 in the rule file "conf\OnConnect.rules.txt", line: 27, char: 18 EXCEPTION! CODE:C0000005 ADDRESS:57EF62 WORD:WildCMP-U ** Exception time: Fri, 13 Jun 2008 10:00:10 +0400 ** Thread number/id:7 2640 User: @ USER DATA: 1CA0654 THREAD ID: A50 HANDLER: 189EE10 STACK: 0189FFC0 80EE5600 7FFAF000 0000018C 00000000 01CA8304 [00000000] RETURN STACK: 189EDCC : 553248 (LocalsExit) ........итд
в tcp.txt ничего странного нет. просто маппинг на интернет радио. всегда работало. сервер после установки беты не перезагружался, 2 дня отработал без ошибок в логе.
imported
ac14.06.2008 04:04
А что у вас в этом tcp.txt?.. Перезапуском лечится?
imported
miguel14.06.2008 12:02
ac пишет: А что у вас в этом tcp.txt?.. Перезапуском лечится?


Вот пример:
"LOCAL_PORT";"REMOTE_HOST";"REMOTE_PORT"
"6667";"mschat.msn.com";"6667"
"2802";"wmsc.webmoney.ru";"2802"
"125";"smtp.enet.ru";"25"
"144";"imap.enet.ru";"143"
"78";"127.0.0.1";"8080"
"201";"192.168.0.200";"81"
"666";"194.186.207.162";"666"
"670";"194.186.207.162";"670"
"1723";"vpn.stv.su";"1723"
"8000";"10.1.1.245";"8000"

в tcp.txt примерно год ничего не менялось.

только что сказали, что банк.терминал сберкарт глючит. это тоже маппинг. перезапуском лечится.
imported
pig15.06.2008 00:59
ЕМНИП, Eproxy\conf\TcpMaps.rules.txt — заменить >STR на >>STR

Я настоятельно советую обновиться до последнего релиза и танцевать беты уже от него. Мало ли ещё что где выплывет.
imported
miguel15.06.2008 17:49
pig пишет: Я настоятельно советую обновиться до последнего релиза и танцевать беты уже от него. Мало ли ещё что где выплывет.


Обязательно!
imported
miguel20.11.2008 13:38
В eproxy\conf\httpproxy\OnRequest.rules.txt у меня предпоследняя строка:

CLIENT_MAC =~ 00-02-44-0C-A9-67 | ViaInterface: 10.3.3.62

Я правильно понимаю что это не влияет на Socks5 ?

Нужно чтобы socks, как и httpproxy тоже шел строго через определенный интерфейс, а он, кажется, пихается туда, где только почта должна ходить.
imported
ac20.11.2008 14:01
Да, у socks'а есть свой
Eproxy\conf\socks\OnRequest.rules.txt
imported
miguel20.11.2008 14:49
ac пишет: Да, у socks'а есть свой
Eproxy\conf\socks\OnRequest.rules.txt


Спасибо
imported
Работает на Eserv/5.05567 (10.02.2020)